"""
author：fc
date：  2021/10/12
"""
#
# 回归，感觉视频中讲述的不太清楚，我写把它记下来吧
#
import pandas as pd
from sklearn.linear_model import  LogisticRegression as LR
from sklearn.linear_model import RandomizedLogisticRegression as RLR

raw_data = pd.read_csv("../files/数据建模/Admission_Predict.csv")
data = pd.DataFrame()
data['admit'] = raw_data['Research']
data['gre'] = raw_data["GRE Score"]
data["gpa"] = raw_data["CGPA"]
data["rank"] = raw_data["University Rating"]
x=data.iloc[:, 1:4]
# 取出所有行，二到四列作为自变量，
y=data.iloc[:,0:1]  # 取出第一列为因变量

r1=RLR()
r1.fit(x,y)
r1.get_support()  # 特征筛选,去掉无效特征rank
print(data.columns[r1.get_support(indices=True)]) # 不加indices=True会返回false或者true，而我需要返回的是下标，其实我这里是想筛选掉无关属性列，但和视频的rank列不同，我这里的rank是有效的

t=data[data.columns[r1.get_support(indices=True)]]
r2=LR()
r2.fit(t,y)
print("训练结束")
print("模型正确率"+str(r2.score(x,y)))